#!/bin/bash

# Docker MySQL备份脚本
# 在每天香港时间0点执行，保留2个月备份

# 配置参数
MYSQL_CONTAINER="mysql"  # 替换为你的MySQL容器名
MYSQL_USER="root"                            # MySQL用户名
MYSQL_PASSWORD="2p4SLaynmW"               # MySQL密码
BACKUP_DIR="/data/mysql_backup"       # 备份存储目录
DATE=$(date +"%Y%m%d_%H%M%S")               # 时间戳格式

# 创建备份目录
mkdir -p "${BACKUP_DIR}"

# 执行备份
docker exec ${MYSQL_CONTAINER} mysqldump \
  -u ${MYSQL_USER} \
  --password=${MYSQL_PASSWORD} \
  data_manage \
  --single-transaction \
  --routines \
  --triggers \
  --events > "${BACKUP_DIR}/backup_${DATE}.sql"

# 压缩备份文件
gzip "${BACKUP_DIR}/backup_${DATE}.sql"

# 删除超过60天的旧备份 (保留2个月)
find "${BACKUP_DIR}" -name "backup_*.gz" -mtime +60 -delete

# 记录日志
echo "[$(date +"%Y-%m-%d %H:%M:%S")] 备份完成: backup_${DATE}.sql.gz" >> "${BACKUP_DIR}/backup.log"
